package map;

import java.util.HashMap;
import java.util.Map;

/**
 * 统计一个字符串中每个字符出现的次数
 */
public class Test {
    public static void main(String[] args) {
        /*
            map:
            key    value
             i       1
             l       1
            思路:
            1:用一个Map保存每个字符出现的次数
              key为出现的字符，value为该字符出现的次数
            2:利用字符串的charAt方法提取line中每一个字符
              2.1:首先获取到该字符后先判断是否在Map中作为key存在
              2.2:如果key存在，说明该字符之前出现过，根据该字符作为key提取对应的value
                  并对value+1
              2.3:如果key不存在，说明该字符是第一次出现，将其put到map中，对应的value为1
         */
        String line = "i love java,thinking in java! hello world!";
        //key:出现的字符，value:出现的次数
        Map<Character,Integer> map = new HashMap<>();
        for(int i=0;i<line.length();i++){
            char c = line.charAt(i);
            if(map.containsKey(c)){//这个字符在Map中作为key是否存在(是否统计过)
                map.put(c,map.get(c) + 1);
            }else{
                //不存在说明第一次出现
                map.put(c,1);
            }
        }
        System.out.println("统计结果:");
        map.forEach((k,v)-> System.out.println(k+":"+v));
    }
}






